Hive查询问题(卡住)

您所在的位置:网站首页 hive sql查询语句 Hive查询问题(卡住)

Hive查询问题(卡住)

2023-09-30 06:34| 来源: 网络整理| 查看: 265

一、现象

几乎全部SQL语句都不能查,卡死在那里,过很久之后可能会报

FAILED: Error in acquiring locks: Error communicating with the metastore

但是查看后台hive的日志,没有任何异常

SQL语句比如:

select 1; show tables;

二、定位原因

1、重启hiveserver2,MetaStore等服务都没有效果

2、考虑是hive元数据的问题

查看hive元数据表的使用情况

show OPEN TABLES where In_use > 0; show full processlist;

发现多个以下语句:

select nl_next from NEXT_LOCK_ID for update

猜测这些表被锁死,导致。

查看数据:

select nl_next from NEXT_LOCK_ID

发现有2条一样的数据

问题可能就在这里;想办法删除一条;

三、解决路径

NEXT_LOCK_ID 始终有锁,无法删除数据。

1、停止hiveserver2,MetaStore 服务;发现还有锁

2、查看hive应用进程 ps -ef|grep hive,全部杀掉,锁释放

3、然后删除NEXT_LOCK_ID一条记录

4、重启hiveserver2,MetaStore

5、查询hive 恢复正常

四、总结

原因可能是多个进程同时操作,导致hive事务上的bug,插进了2条一样的数据,导致元数据库被锁

以下几个hive元数据表跟hive的事务有关: NEXT_LOCK_ID

next_compaction_queue_id

next_txn_id

以上三个表出问题就有可能会报以下错误: error in acquiring locks: error communicating with the metastore.

hive 卡死的原因很多,这个是其中之一,基本都hive metastore会有一些关系,大家可以按这个方向去定位原因,就能更快速寻找到问题的根源。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3